//1.导入mysql模块
const mysql = require('mysql');
//2.建立与mysql数据库的链接
const db = mysql.createPool({
  host:'127.0.0.1',//数据库的IP地址
  user:'root',//登录数据库账号
  password:'admin123',//登录数据库的密码
  database:'my_db_01'//指定要操作那个数据库
})

//查询users表中所有的用户数据
// const sqlStr = 'SELECT * FROM users';
// db.query(sqlStr,(err,results) => {
//   //查询失败
//   if(err) return console.log(err.message);
//   //查询成功
//   console.log(results);
// })

// //1.要插入到users表中的数据对象
// const user = {username:'Spider-Man',password:'pcc123'};
// //2.待执行的sql语句，其中英文的?表示占位符
// const sqlStr = 'INSERT INTO users (username,password) VALUES(?,?)';
// //3.使用数组的形式，依次为?占位符指定具体的值
// db.query(sqlStr,[user.username,user.password],(err,results) => {
//   //失败
//   if(err) return console.log(err.message);
//   //成功
//   if(results.affectedRows === 1) {
//     console.log("插入数据成功")
//   }
// })

//插入数据的便捷方式
// //1.要插入到users表中的数据对象
// const user = {username:'Spider-Man2',password:'pcc43321'};
// //2.待执行的sql语句，其中英文的?表示占位符
// const sqlStr = 'INSERT INTO users SET ?';
// //3.直接将数据对象当作占位符的值
// db.query(sqlStr,user,(err,results) => {
//   if(err) return console.log(err.message);
//   if(results.affectedRows === 1) {
//     console.log('插入数据成功')
//   }
// })

//1.要更新的数据对象
// const user = {id:7,username:'aaa',password:'000'};
// //2.要执行的sql语句
// const sqlStr = 'UPDATE users SET username=?,password=? WHERE id=?';
// //3.调用db.query()执行sql语句的同时，使用数组一次为占位符指定具体的值
// db.query(sqlStr,[user.username,user.password,user.id],(err,results) => {
//   if(err) return console.log(err.message);
//   if(results.affectedRows === 1) {
//     console.log('更新数据成功')
//   }
// })

//1.要更新的数据对象
// const user = {id:7,username:'aaa',password:'010'};
// //2.要执行的sql语句
// const sqlStr = 'UPDATE users SET ? WHERE id=?';
// //3.调用db.query()执行sql语句的同时，使用数组一次为占位符指定具体的值
// db.query(sqlStr,[user,user.id],(err,results) => {
//   if(err) return console.log(err.message);
//   if(results.affectedRows === 1) {
//     console.log('更新数据成功!')
//   }
// })

//1.要执行的sql语句
// const sqlStr = 'DELETE FROM users WHERE id=?';
// //2.调用db.query()执行sql语句的同时，为占位符指定具体的值
// //注意：如果sql语句中有多个占位符，则必须使用数组为每个占位符指定具体的值；如果sql语句只有一个占位符，则可以省略数组
// db.query(sqlStr,7,(err,results) => {
//   if(err) return console.log(err.message);
//   if(results.affectedRows === 1) {
//     console.log('删除数据成功!')
//   }
// })

//标记删除：使用UPDATE语句替代DELECT语句；只更新数据的状态，并没有真正的删除
db.query('UPDATE USERS SET status=1 WHERE id=?',5,(err,results) => {
  if(err) return console.log(err.message);
  if(results.affectedRows === 1) {
    console.log('删除数据成功!')
  }
})